-
Couldn't load subscription status.
- Fork 18
Update scylla driver core to 3.11.5.9 #127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update scylla driver core to 3.11.5.9 #127
Conversation
a5507da to
ca7dbcc
Compare
|
3.11.5.9, not 3.11.5.8 |
Yeah, it was hanging there for a long time, just updated it to 3.11.5.9 |
Currently it is spread over all the packages. Let's have one place where it is defined.
8dabfd2 to
21f2404
Compare
b1cf05a to
b9b97f8
Compare
|
@Bouncheck , WDYT should we remove these tests ? IMHO this has to be tested on the driver side and other part of this issue is handled in AlterTabletIT.java |
|
I see no reason to remove BaseScyllaIntegrationTest. |
|
Of course if something is guaranteed not to change on the driver side then it does not necessarily need a test in cdc library. |
It was broken because metadata was not changing because of the following logic: It was broken the whole time. |
|
I wonder if with the driver change this part below should be changed somehow or not. scylla-cdc-java/scylla-cdc-driver3/src/main/java/com/scylladb/cdc/cql/driver3/Driver3WorkerCQL.java Lines 153 to 162 in 02068f7
It seems like we may not be fully leveraging the "skipMetadata" improvements if we do not change it. In this snippet the schema field is set only once per PreparedStatement. IIUC it will not be in sync with contents of the ResultSet if an ALTER operation is performed during reading |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The tests for old invariants should be removed, not adjusted to pass:
This invariant will not be true anymore after driver update:
public void testPreparedStatementSameSchemaBetweenPages() throws ExecutionException, InterruptedException, TimeoutException {
// Tests an assumption used in the implementation
// that given a PreparedStatement, it will always
// return the rows with the same schema - in this
// case: when a schema change happens between
// pages of a query.
// Note that Driver3Session deliberately sets
// a protocol version to V4, while these
// tests do not. This is on purpose:
// if Scylla in the future implements a
// support for new protocol version, this
// test might fail and you (are you investing
// this failure now?) should decide how to proceed.
// See Driver3WorkerCQL for more context.
and this too:
public void testPreparedStatementOldSchemaAfterAlter() throws ExecutionException, InterruptedException, TimeoutException {
// Tests an assumption used in the implementation
// that given a PreparedStatement, it will always
// return the rows with the same schema - in this
// case: when a query is prepared, then a schema
// change happens and afterwards the query is started
// it will still return the results with the
// schema as of the time of preparing the query.
Alternatively we could have a test that the schema is fresh between pages. Maybe one day we'll change to full protocol v5 without patches and this would guard against a mistake during transition.
Yes exactly, that change was missing in the PR, for it is already too late, issue is fixed and metadata updates are working. |
I have dropped the whole suite, please take a look. |
I would want to see all failures on all images. No reason to fail fast.
These set of tests verify certain driver behavior. We remove them by following reasons: 1. This behavior is not relevant anymore, we actually want driver to change schema in between pages. 2. There is no reason to test driver behavior in this repo, it needs to be tested on the driver.
8fd212b to
abec814
Compare
New version has fixed problem with prepared statement invalidation and
Driver3WorkerCQLITneeds to be fixed accordingly.